package com.entity;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.lang.reflect.InvocationTargetException;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.beanutils.BeanUtils;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.baomidou.mybatisplus.enums.IdType;


/**
 * 用户实体类，用于数据库操作
 * 包含普通的增删改查操作
 * @author team10
 */
@TableName("yonghu")
public class YonghuEntity<T> implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 默认构造函数
	 */
	public YonghuEntity() {

	}

	/**
	 * 通过传入的实体对象复制属性
	 */
	public YonghuEntity(T t) {
		try {
			BeanUtils.copyProperties(this, t);
		} catch (IllegalAccessException | InvocationTargetException e) {
			// 捕获属性复制异常
			e.printStackTrace();
		}
	}

	/**
	 * 主键id，自动生成
	 */
	@TableId
	private Long id;

	/**
	 * 用户账号
	 */
	private String zhanghao;

	/**
	 * 用户密码
	 */
	private String mima;

	/**
	 * 用户姓名
	 */
	private String xingming;

	/**
	 * 用户性别
	 */
	private String xingbie;

	/**
	 * 用户手机号码
	 */
	private String shouji;

	/**
	 * 用户邮箱
	 */
	private String youxiang;

	/**
	 * 用户头像图片路径
	 */
	private String tupian;

	/**
	 * 添加时间
	 */
	@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat
	private Date addtime;

	// 获取添加时间
	public Date getAddtime() {
		return addtime;
	}

	// 设置添加时间
	public void setAddtime(Date addtime) {
		this.addtime = addtime;
	}

	// 获取主键id
	public Long getId() {
		return id;
	}

	// 设置主键id
	public void setId(Long id) {
		this.id = id;
	}

	// 设置：用户账号
	public void setZhanghao(String zhanghao) {
		this.zhanghao = zhanghao;
	}

	// 获取：用户账号
	public String getZhanghao() {
		return zhanghao;
	}

	// 设置：用户密码
	public void setMima(String mima) {
		this.mima = mima;
	}

	// 获取：用户密码
	public String getMima() {
		return mima;
	}

	// 设置：用户姓名
	public void setXingming(String xingming) {
		this.xingming = xingming;
	}

	// 获取：用户姓名
	public String getXingming() {
		return xingming;
	}

	// 设置：用户性别
	public void setXingbie(String xingbie) {
		this.xingbie = xingbie;
	}

	// 获取：用户性别
	public String getXingbie() {
		return xingbie;
	}

	// 设置：用户手机号码
	public void setShouji(String shouji) {
		this.shouji = shouji;
	}

	// 获取：用户手机号码
	public String getShouji() {
		return shouji;
	}

	// 设置：用户邮箱
	public void setYouxiang(String youxiang) {
		this.youxiang = youxiang;
	}

	// 获取：用户邮箱
	public String getYouxiang() {
		return youxiang;
	}

	// 设置：用户头像图片路径
	public void setTupian(String tupian) {
		this.tupian = tupian;
	}

	// 获取：用户头像图片路径
	public String getTupian() {
		return tupian;
	}
}
